# --*-- encoding:utf-8 --*--
from typing import List
# import sys 
# import codecs
# sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

from LAC import LAC

"""
    根据 HIT 提供的lac工具，进行分词和通用命名实体识别
    func1:预定义好了四种通用命名实体
    func2: 同时进行pos词性标注
    func3:能够输出每个分词的权重
"""


def single_sentence_seg(texts:List[str]):
    # 装载分词模型
    lac = LAC(mode='seg')
    # 批量样本输入, 输入为多个句子组成的list，平均速率会更快
    seg_result = lac.run(texts)[0]

    return "##".join(seg_result)



def extract_keys_lac(texts:List[str] ,top_k = 5):
    # 装载词语重要性模型
    if isinstance(texts ,str):
                texts = texts.split('。')

    lac = LAC(mode='rank')
    # 批量样本输入, 输入为多个句子组成的list，平均速率会更快
    rank_result = lac.run(texts)[0]

    res = []
    for text , tag , score in zip(rank_result[0] ,rank_result[1] ,rank_result[2]):
        if tag in ['TIME','LOC','ORG' ,'PER'] or score >=2 :
            res.append((text , tag , score))
            
    res = sorted(res , key=lambda x :x[2],reverse=True)
    
    res = [x[0] for x in res[:top_k]]
    return "##".join(res)
    
    
# if __name__ == '__main__':

#     texts = ["刚看小策这个系列的时候有些不太明白，明明可以找些更年轻的演员来拍，只要够夸张，一定有更多的流量。直到看到这个花絮彩蛋，老人凝望着老旧的胡同口，满怀期待的样子，才发觉，原来这个系列里的很多老人，亲人都不在身边了，对于这些老人，能有拍视频这样的事情做，会让他们孤单的生活好起来吧？至少还有人会想起他们，记得他们，而不是日复一日，年复一年的期待着，又落空，只能在回忆里，感慨岁月时光的流逝，回忆儿女在身边时的那种被需要的幸福"]
#     texts = ["需要注意，这个平均水平是动态发展的，如果你们这些渣渣问我明年、后年、大后年又是啥行情，我只能用教员的十个字来形容：你们怎么办？只有天知道"]

#     print(extract_keys_lac(texts))
#     print(single_sentence_seg(texts))